package com.itheima11;

import java.util.*;

/**
 * @author Xiao
 * @date 2021/7/27
 */
public class VariableParameterDemo02 {
    /**
     * 不可变集合
     */
    @SuppressWarnings("all")
    public static void main(String[] args) {
        /**
         * 集合的批量添加：
         *      首先是通过调用List.of方法创建一个不可变集合，of方法的形参是一个可变参数；
         *      再创建一个ArrayList集合，并把这个不可变集合中所有的数据都添加到ArrayList集合中。
         *  Set不可变集合：参数不能传入重复的元素。
         *  Map不可变集合：提供Map.ofEntries(Map.entry(key, value)...)方法，提高代码的阅读性。
         */
        List<String> list = List.of("a", "b", "c");
        ArrayList<String> list1 = new ArrayList<>(list);
        System.out.println(list1);  //  [a, b, c]

        //IllegalArgumentException  非法数据异常（Set不可变集合参数不能传入重复的元素）
        //TreeSet<String> ts = new TreeSet<String>(Set.of("a", "b", "c", "a"));
        TreeSet<String> ts = new TreeSet<>(Set.of("a", "b", "c"));
        System.out.println(ts);     //  [a, b, c]

        Map<String, String> map = Map.of("M1", "a", "M2", "b", "M3", "c");
        HashMap<String, String> hm = new HashMap<>(map);
        System.out.println(hm);    //  {M3=c, M2=b, M1=a}
        TreeMap<String, Integer> tm = new TreeMap<>(Map.ofEntries
                (Map.entry("阿良", 24),
                        (Map.entry("左右", 25)),
                        (Map.entry("平安", 21))));
        System.out.println(tm);     //  {左右=25, 平安=21, 阿良=24}
    }
}
